package com.situ.stack;

/**
 * 这是一个栈的实现，应该提供两个方法 底层基于数组 提供入栈和出栈的方法
 * 
 * @author Class
 *
 */
public class HHStack {
	// 定义一个数组，用于保存元素
	Object[] datas;
	// 定义指示栈顶位置的变量
	private int top;

	// 构造方法
	public HHStack() {
		// 对数组进行初始化操作
		datas = new Object[10]; // 默认长度
		top = 0; // 默认栈顶为0
	}

	// 入栈 参数 返回值
	public boolean push(Object element) {
		// 入栈不一定每次都成功

		// 不满，可以添加元素
		if (top < datas.length) {
			datas[top] = element;
			top++;
			return true;
		} else {// 满，不可以添加元素
			return false;
		}
	}

	// 出栈 参数无 返回值Object
	public Object pop() {
		// 成功：栈有元素
		if(top>0) {
			top--;
			Object object = datas[top];
			return object;
		}else {
			// 失败：栈空
			return null;
		}		
	}

}
